package be.xios.projectquiz.jury;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

import be.xios.projectquiz.engine.EngineDB;

import net.miginfocom.swing.MigLayout;

/// <summary>
/// Deze klasse voegt een vraagg toe aan de DB
/// </summary>
/// <author>Flemming Bosch</author>
public class VraagToevoegen extends JFrame{

	private static final long serialVersionUID = 1L;
	private JPanel midPanel,bottomPanel;
	private JLabel vraagLbl,antwoordLbl,hintLbl,themaLbl,taalLbl;
	private JTextField vraagTxt,antwoordTxt,hintTxt;
	private JComboBox<String> themaCb,taalCb;
	private JButton insertVraag;
	private boolean invulCheck;
	private EngineDB edb = new EngineDB();
	
	/// <summary>
	/// constructor die de GUI aanmaakt.
	/// </summary>
	/// <author>Flemming Bosch</author>
	public VraagToevoegen() {
		super("Vraag toevoegen aan de database");
		setLayout(new BorderLayout());

		midPanel = new JPanel(new MigLayout());
			
			vraagLbl = new JLabel("Vraag : ");
			hintLbl = new JLabel("Hint : ");
			antwoordLbl = new JLabel("Antwoord :");
			themaLbl = new JLabel("Thema : ");
			taalLbl = new JLabel("Taal : ");
			
			vraagTxt = new JTextField(50);
			hintTxt = new JTextField(50);
			antwoordTxt = new JTextField(50);
			
			String[] themas = {"Strips & Animaties", "Geografie", "Kunst & Literatuur","Wetenschap & Natuur","Algemene Kennis","Film & Televisie","Geschiedenis","Muziek","Sport & Ontspanning","Talenkennis"};
			themaCb = new JComboBox<String>(themas);

			String[] languages = {"Nederlands", "English"};
			taalCb = new JComboBox<String>(languages);
			

		midPanel.add(vraagLbl);
		midPanel.add(vraagTxt,"wrap");
		midPanel.add(hintLbl);
		midPanel.add(hintTxt,"wrap");
		midPanel.add(antwoordLbl);
		midPanel.add(antwoordTxt,"wrap");
		midPanel.add(themaLbl);
		midPanel.add(themaCb,"wrap");
		midPanel.add(taalLbl);
		midPanel.add(taalCb,"wrap");
		
		bottomPanel = new JPanel(new FlowLayout(1));
		
		insertVraag = new JButton("Voeg vraag toe");
		insertVraag.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0) {
				if(arg0.getSource().equals(insertVraag)){
					//Controleren of alles ingevuld en geselecteerd is.
					checkInvulling();
					
					if(invulCheck){
							edb.InsertVraag(vraagTxt.getText(),hintTxt.getText(),antwoordTxt.getText(),themaCb.getSelectedIndex()+1, taalCb.getSelectedIndex()+1);
							vraagTxt.setText("");
							antwoordTxt.setText("");
							hintTxt.setText("");	
					}
					else if(!invulCheck){
						JOptionPane.showMessageDialog(null, "Vul elk tekstveld in alstublief.", "Gegevens error", JOptionPane.ERROR_MESSAGE );
					}
				}
			}
		});
		bottomPanel.add(insertVraag);
		
		add(midPanel,BorderLayout.CENTER);
		add(bottomPanel,BorderLayout.SOUTH);
	}
	
	/// <summary>
	/// Deze method controleert of er alles ingevuld word in de textfields.
	/// </summary>
	/// <author>Flemming Bosch</author>
	public void checkInvulling(){
		invulCheck = true;
		if(vraagTxt.getText().equals("") || antwoordTxt.getText().equals("") || themaCb.getSelectedItem() == null || taalCb.getSelectedItem() == null){
			invulCheck=false;
		}
	}
}
